Workflow technology aims to help define, create, co-ordinate and manage a set of tasks undertaken to achieve a specified goal. A workflow typically uses a step by step description of the tasks that are to be performed and a low level detailed description of each task. The full specification of the possible tasks and possible flow of control is part of the workflow specification and should be available before a task begins.
Typically, task options with their appropriate selection criteria are possible and available as alternatives in the workflow, but they typically should be predefined and are expected to be included in the workflow specification. Most current workflow systems embed the specification of the task options and the decision making surrounding their selection and configuration into a monolithic description of the workflow.
Workflows often enact business processes involving expertise from different domains, and may therefore have to be all encompassing; that is a large field of expertise is covered. The task of workflow programmers is therefore considerably difficult. They should not only be versed in the workflow language, but they should also posses some expertise in all the relevant areas or at least be able to talk to such experts and extract their knowledge into a centralized description of the workflow. Current workflow systems thus typically offer static and rigid solutions to complex workflow problems, which often would ideally be solved with a high level of flexibility and adaptability.
There is a need in the art to provide an improved workflow system and method which can offer a more flexible and customized solution to complex workflow problems.